//package com.inspur.edp.cef.generator.coreGenerator.base.entitygen.resourceinfo;
//
//
//import com.inspur.edp.caf.generator.baseInfo.TypeInfo;
//import com.inspur.edp.caf.generator.item.ClassGenerator;
//import com.inspur.edp.caf.generator.item.ClassGeneratorContext;
//import com.inspur.edp.caf.generator.method.ClassMethodGenerator;
//import com.inspur.edp.cef.rtgenerator.managergen.ManagerGeneratorContext;
//import com.inspur.edp.cef.rtgenerator.repositorygen.RepositoryGenUtil;
//import com.inspur.edp.cef.spi.entity.resourceInfo.DataTypeResInfo;
//import java.util.ArrayList;
//import org.eclipse.jdt.core.dom.Modifier;
//
//public abstract class DataTypeResInfoGenenerator extends ClassGenerator {
//
//  protected ManagerGeneratorContext ParentContext;
//  protected String nodeCode;
//  private java.lang.Class entityInfoType;
//
//  public DataTypeResInfoGenenerator(String code, java.lang.Class entityInfoType,
//      ManagerGeneratorContext parContext) {
//    super(parContext.getProjContext().getRootCompileUnitGenCtx().getCompilationUnitInfo());
//    this.nodeCode = code;
//    this.entityInfoType = entityInfoType;
//    this.ParentContext = parContext;
//  }
//
//  ////
//////	@Override
//////	protected final String GetNameSpace()
//////	{
//////		return ParentContext.getProjContext().DefaultNamespace;
//////	}
////
//  @Override
//  protected final String getName() {
//    return nodeCode + "EntityResourceInfo";
//  }
//
//  @Override
//  protected final ClassGeneratorContext createClassInfoContext() {
//    DataTypeResInfoGenCtx context = CreateDataTypeResInfoGenCtx(entityInfoType, ParentContext);
//    context.setDataTypeResourceInfoType(new TypeInfo(getName()));
//
//    ParentContext.getProjContext().getModelResInfoGenContex().getEntityResourceInfos()
//        .put(nodeCode, context.getDataTypeResourceInfoType());
//    afterCreateDataTypeResInfoGen(context);
//    return context;
//  }
//
//  protected void afterCreateDataTypeResInfoGen(DataTypeResInfoGenCtx context) {
//  }
//
//
//  @Override
//  protected final ArrayList<Modifier.ModifierKeyword> getAccessModifier() {
//    return RepositoryGenUtil.createModifierKeywordArray(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
//  }
//
//  /**
//   * 指定父类，应为DataTypeResourceInfos或其子类
//   *
//   * @return
//   */
//  @Override
//  protected final TypeInfo setParentClass() {
//    TypeInfo typeInfo = setParentClassDataTypeResInfo();
//    if (typeInfo != null) {
//      return typeInfo;
//    }
//    return new TypeInfo(DataTypeResInfo.class);
//  }
//
//  //
//  @Override
//  protected final java.util.ArrayList<ClassMethodGenerator> createMethodGenerators() {
//    java.util.ArrayList<ClassMethodGenerator> list = new java.util.ArrayList<ClassMethodGenerator>();
//    list.add(new GetEntityDisplayNameMethodGen((DataTypeResInfoGenCtx) getContext()));
//    list.add(new GetPropDisplayNameMethodGen((DataTypeResInfoGenCtx) getContext()));
//    list.add(new GetPropEnumDisplayNameMethodGen((DataTypeResInfoGenCtx) getContext()));
//    list.add(new GetPropEnumInfoMethodGen(((DataTypeResInfoGenCtx) getContext())));
//    list.add(new GetPropEnumInfosMethodGen(((DataTypeResInfoGenCtx) getContext())));
//    list.add(new GetAssoRefPropDisplayNameMethodGen((DataTypeResInfoGenCtx) getContext()));
////
//    java.util.ArrayList<ClassMethodGenerator> extendList = createExtendMethodGenerators();
//    if (extendList != null && extendList.size() > 0) {
//      list.addAll(extendList);
//    }
//    return list;
//  }
//
//  /**
//   * 子类扩展方法生成器
//   *
//   * @return
//   */
//  protected java.util.ArrayList<ClassMethodGenerator> createExtendMethodGenerators() {
//    return null;
//  }
//
//  /**
//   * 上下文
//   *
//   * @param entityInfoType
//   * @param parentContext
//   * @return
//   */
//  protected abstract DataTypeResInfoGenCtx CreateDataTypeResInfoGenCtx(java.lang.Class
//      entityInfoType, ManagerGeneratorContext parentContext);
//
//  /**
//   * 父类类型
//   *
//   * @return
//   */
//  protected abstract TypeInfo setParentClassDataTypeResInfo();
//}